using RanchBuddy.Core.Domain;
using RanchBuddy.Core.Domain.Impl;
using RanchBuddy.Core.Services.Impl;
using StructureMap;

namespace RanchBuddy.Core.Services
{
    [PluginFamily("Default")]
    public interface IAccountService
    {
        IAccount GetAccountByUsername(string Username);
        IAccount GetAccountByEmail(string Email);
        string GetOpenPasswordByUsername(string Username);
        string GetOpenPasswordByEmail(string Email);
        IStatus SaveAccount(IAccount account);
        IStatus ChangePassword(IAccount account, string OldPassword, string NewPassword, string ConfirmPassword);
        IStatus Logout();
        IStatus Login(string Username, string Password, bool RememberMe);
        IStatus AutoLogin(string username);
        IStatus Register(IAccount account);
    }
}